#ifndef NAVIGATION_H
#define NAVIGATION_H

#include <actionlib/client/simple_action_client.h>

#include <move_base_msgs/MoveBaseAction.h>
#include <move_base_msgs/MoveBaseGoal.h>

#include "npu_robot/goal_global.h"

enum NavigationState
{
    NAVIGATION_PATROL,
    NAVIGATION_PICK_GARBAGE,
    NAVIGATION_PLACE_GARBAGE
};

typedef actionlib::SimpleActionClient<move_base_msgs::MoveBaseAction> MoveBaseClient;

class Navigation
{
private:
    // MoveBaseClient client("move_base", true);

    NavigationState navigationState;

    void sendGoal(GoalClass *goal);

public:
    Navigation();
    ~Navigation();

    void init(void);
    void patrol(void);
    void stop(void);
};

extern Navigation navigation;

#endif
